#pragma once

#include "DirectX_includes.h"
#include "structure.h"
#include "SpriteInfo.h"

class Sprite
{
private:
	//Matrices used to move, scale, and rotate any sprite object
	D3DXMATRIX spriteMat, spriteScale, spriteRotate, spriteTranslate;
	ID3DXSprite*		sprite;	//Sprite object (only one is needed)
	IDirect3DDevice9* spriteDevice;
public:
	Sprite();
	void Init();

	//////////////////////////////////////////////////////////////////////////
	// Name:		Draw
	// Parameters:	SpriteInfo struct that holds all data of sprite,
	//				including the texture
	// Return:		void
	// Description: Draws the current sprites with their default values
	//////////////////////////////////////////////////////////////////////////
	void Draw(SpriteInfo &);
	inline static Sprite* Instance(){static Sprite instance; return &instance;}
	inline LPDIRECT3DDEVICE9 getDevice(){return spriteDevice;}
	void Release();
};